package nl.haemers.data.reflection 
{
	import flash.utils.Dictionary;
	import nl.haemers.data.reflection.Type;
	/**
	 * ...
	 * @author Jonathan Haemers
	 * We use this class in the ObjectSerializer. Probably for debug purpose only.
	 */
	public class Property implements IProperty
	{
		private var _name			:String;
		private var _propName		:String;
		
		private var _dataType		:String;
		private var _objectType		:Type;
		private var _ignore			:Boolean;
		
		//TODO: For debug only?
		private var _key			:String;
		private var _type			:String;
		private var _child			:Dictionary;
		/** Public methods **/
		
		/** Getters & Setters **/
		//TODO: All setters are for debug only?
		public function get name() : String
		{
			return _name;
		}
		public function set name(value:String) : void 
		{
			_name = value;
		}
		
		public function get propertyName() : String
		{
			return _propName;
		}
		
		public function get dataType() : String 
		{
			return _dataType;
		}
		
		public function get objectType() : Type 
		{
			return _objectType;
		}
		
		public function get ignore() : Boolean 
		{
			return _ignore;
		}
		
		public function get writeable() : Boolean
		{
			return true;
		}
		
		public function get key() : String
		{
			return _key;
		}
		public function set key(value:String) : void 
		{
			_key = value;
		}
		
		public function get type() : String
		{
			return _type;
		}
		public function set type(value:String) : void 
		{
			_type = value;
		}
		
		public function get child() : Dictionary
		{
			return _child;
		}
		public function set child(value:Dictionary) : void 
		{
			_child = value;
		}
		/** Protected methods **/
		
		/** Private methods **/
		
	}

}